package util;

import model.Goods;

import java.util.Arrays;

/**
 * 存元素的容器
 * 解决数组不能动态扩容的问题
 */
public class MyList {
    //存元素的容器
    private Object[] arr;
    //元素的个数
    private int size;

    public MyList(int n){
        arr = new Object[n];
    }

    /**
     * 添加元素
     * @param obj
     * @return true  表示添加成功
     */

    public boolean add(Object obj){
        //判断是否存的下
        if (size == arr.length) {
            //扩大容器容量
            grow();
        }
        arr[size++] = obj;
        return true;
    }

    /**
     * 对容器进行扩容
     * 容量扩大一倍
     */
    private void grow(){
        int newLength = arr.length * 2;
        arr = Arrays.copyOf(arr,newLength);
    }
    /**
     * 根据索引获取元素
     * @param index 元素的下标
     * @return
     */
    public Object getElement(int index){
        if(index < 0 || index > size){
            return null;
        }
        return arr[index];
    }

    /**
     * 容器中元素的数量
     * @return
     */
    public int size(){
        return size;
    }

    /**
     * 将容器中所有元素转换为字符串形式返回
     * @return  元素的字符串
     */
    public String toString(){
        String result = "";
        for (int i = 0; i < size; i++) {
            result += arr[i].toString() + "\n";
        }
        return result;
    }
    public int search(Object obj){
        for (int i = 0; i < size; i++) {
            if (arr[i].equals(obj)){
                return i;
            }
        }
        return -1;
    }


}
